home *** CD-ROM | disk | FTP | other *** search
- 10 '
- 20 ' ローマ字ハングル変換(フリコレ7版)
- 30 ' Copyright (C) 1993 GFD02650 BIRDO
- 40 '
- 50 ' 子音 平音 G N D (R,L) M (B,V) S X (J,Z) C K T (F,P) H
- 60 ' 1 2 3 4 5 6 7 8 9 A B C D E
- 70 ' 濃音は 平音の次に Q をつける
- 80 ' GQ DQ (BQ,VQ) SQ (JQ,ZQ)
- 90 ' 11 12 13 14 15
- 100 ' 母音 A YA EO YEO O YO U YU EU I
- 110 ' 1 2 3 4 5 6 7 8 9 A
- 120 ' (AI,AE) (YAI,YAE) (EOI,E) (YEOI,YE) (OA,WA) (OAI,WAI,OAE,WAE)
- 130 ' 11 12 13 14 15 16
- 140 ' OI (UEO,WEO) (UE,WE) (UI,WI) EUI
- 150 ' 17 18 19 1A 1B
- 160 ' パッチム 子音に加えて
- 170 ' GS (NJ,NZ) NH LG LM (LB,LV) LS LT (LF,LP) LH (BS,VS)
- 180 ' 21 22 23 24 25 26 27 28 29 2A 2B
- 190 '
- 200 ' 変数一覧表
- 210 ' 単純変数
- 220 ' INFILE$ 入力用ファイル名
- 230 ' FONTFILE$ フォントファイル名
- 240 ' ALPHA アルファベットであることを示す
- 250 ' CODE1 ASCII-65
- 260 ' HANGULFLAG ハングルの処理中であることを示す
- 270 ' HANGULMODE ハングルのモードであることを示す
- 280 ' ATR1 アトリビュート
- 290 ' CFLAG 子音の処理中であることを示す
- 300 ' VFLAG 母音の処理中であることを示す
- 310 ' PFLAG パッチムの処理中であることを示す
- 320 ' NOCRFLAG 改行しないことを示す
- 330 ' COUNT 処理中の行の中での位置を示す
- 340 ' CCODE 子音のコード
- 350 ' VCOUNT 母音のカウンタ
- 360 ' PCOUNT パッチムのカウンタ
- 370 ' VOWEL 母音の確定コード
- 380 ' BATCIM パッチムの確定コード
- 390 ' CWORK 子音コード作成のためのワーク
- 400 ' REC フォント・ファイルのレコード番号
- 410 ' N レコード内の位置
- 420 ' WORK ファイル内の位置計算用ワーク
- 430 ' X,Y 画面上の座標
- 440 '
- 450 ' 配列変数
- 460 ' ATR(25) A-ZのASCIIコード-65を添字とし、 母音:0 子音:1 Q:2
- 470 ' CODE(25) A-ZのASCIIコード-65を添字とし、 上記コードを値とする
- 480 ' VCODE(3) 母音のコード
- 490 ' PCODE(1) パッチムのコード
- 500 ' HANGULCODE(2) 変換後のハングルのコード
- 510 '
- 520 DEFINT A-Z
- 530 DIM ATR(25),CODE(25),HANGULCODE(2),FONT(15)
- 540 RESTORE *ATTRIBUTE
- 550 FOR I=0 TO 25
- 560 READ ATR(I)
- 570 NEXT I
- 580 FOR I=0 TO 25
- 590 READ CODE(I)
- 600 NEXT I
- 610 CLS
- 620 PRINT " ローマ字ハングル変換(フリコレ7版)"
- 630 PRINT " Copyright (C) 1993 GFD02650 BIRDO"
- 640 PRINT
- 650 PRINT "入力するファイル(キーボードからのときはRETURNのみ)"
- 660 LINE INPUT INFILE$
- 670 IF INFILE$>"" THEN
- 680 OPEN "I",#1,INFILE$
- 690 ENDIF
- 700 NOCRFLAG=0
- 710 FONTFILE$="HANGUL.FNT"
- 720 *出力ファイル
- 730 OPEN "R",#2,"(32)"+FONTFILE$
- 740 IF LOF(2)=0 THEN GOTO *SETFONT
- 750 CLS
- 760 *1行読み込み
- 770 IF INFILE$>"" THEN
- 780 IF EOF(1) THEN *END
- 790 LINE INPUT #1,LIN$
- 800 ELSE
- 810 LOCATE 0,Y
- 820 LINE INPUT LIN$
- 830 IF LIN$="" THEN *END ' キーボードからの入力のとき
- 840 Y=CSRLIN
- 850 ENDIF
- 860 COUNT=0:HANGULFLAG=0:CFLAG=0:VFLAG=0:PFLAG=0
- 870 CCODE=0:VCODE(0)=0:VCODE(1)=0:VCODE(2)=0
- 880 VCOUNT=0:PCOUNT=0:PCODE(0)=0:PCODE(1)=0:PCODE(2)=0
- 890 HANGULMODE=-1
- 900 *LOOP
- 910 COUNT=COUNT+1
- 920 A$=MID$(LIN$,COUNT,1)
- 930 IF A$="" THEN
- 940 IF HANGULFLAG THEN 'ハングルの処理中であったとき
- 950 GOSUB *ハングルの最後
- 960 VFLAG=0:PFLAG=-1
- 970 ENDIF
- 980 GOSUB *ハングル表示
- 990 IF NOCRFLAG=0 THEN
- 1000 GOSUB *改行
- 1010 ENDIF
- 1020 NOCRFLAG=0
- 1030 GOTO *1行読み込み
- 1040 ENDIF
- 1050 IF HANGULMODE THEN
- 1060 GOSUB *ISALPHA
- 1070 ELSE
- 1080 ALPHA=0
- 1090 ENDIF
- 1100 IF ALPHA THEN ' ハングルのとき
- 1110 CODE1=ASC(A$)-65 'アルファベットのコード化
- 1120 IF CODE1>=26 THEN CODE1=CODE1-32 '小文字のとき
- 1130 ATR1=ATR(CODE1)
- 1140 IF HANGULFLAG THEN'ハングル続き
- 1150 IF ATR1=1 THEN ' 子音であるとき
- 1160 IF CFLAG THEN ' 子音の処理中のとき
- 1170 CWORK=CODE(CODE1)
- 1180 GOSUB *子音の処理
- 1190 ELSE IF VFLAG THEN ' 母音の処理中のとき
- 1200 GOSUB *母音の確定
- 1210 PFLAG=-1:PCOUNT=0
- 1220 GOSUB *パッチムの処理
- 1230 ELSE ' パッチムの処理中のとき
- 1240 GOSUB *パッチムの処理
- 1250 ENDIF
- 1260 ELSE IF ATR1=2 THEN' 濃音
- 1270 IF CFLAG THEN '子音処理中のときのQの処理
- 1280 CODE2=CCODE
- 1290 GOSUB *子音の濃音
- 1300 CCODE=CODE2
- 1310 ELSE IF PFLAG THEN' パッチム処理中のQの処理
- 1320 CODE2=PCODE(PCOUNT-1)
- 1330 GOSUB *子音の濃音
- 1340 PCODE(PCOUNT-1)=CODE2
- 1350 ELSE '母音処理中のQの処理
- 1360 GOSUB *母音の確定
- 1370 PFLAG=-1:PCOUNT=0
- 1380 ENDIF
- 1390 ELSE IF CFLAG THEN' 子音の処理中のときの母音の処理
- 1400 CFLAG=0:VCOUNT=0:VFLAG=-1
- 1410 GOSUB *子音の変換
- 1420 GOSUB *母音
- 1430 ELSE IF PFLAG THEN' パッチムの処理中のときの母音の処理
- 1440 PCOUNT=PCOUNT-1
- 1450 CWORK=PCODE(PCOUNT)
- 1460 CCODE=0
- 1470 GOSUB *パッチムの確定
- 1480 GOSUB *子音の処理
- 1490 CFLAG=0
- 1500 VCOUNT=0:VFLAG=-1
- 1510 GOSUB *子音の変換
- 1520 GOSUB *母音
- 1530 ELSE' 母音処理中のときの母音の処理
- 1540 GOSUB *母音
- 1550 ENDIF
- 1560 ELSE' ハングルの始まり
- 1570 HANGULFLAG=-1
- 1580 CFLAG=0
- 1590 VFLAG=0
- 1600 PFLAG=0
- 1610 CCODE=0
- 1620 PCOUNT=0
- 1630 VCOUNT=0
- 1640 IF ATR1=1 THEN '子音のとき
- 1650 CFLAG=-1
- 1660 CWORK=CODE(CODE1)
- 1670 GOSUB *子音の処理
- 1680 ELSE IF ATR1=0 THEN '母音のとき
- 1690 HANGULCODE(0)=8
- 1700 VFLAG=-1:VCOUNT=0
- 1710 GOSUB *母音
- 1720 ELSE ' Qのとき
- 1730 CFLAG=-1:CCODE=0
- 1740 ENDIF
- 1750 ENDIF
- 1760 ELSE ' ハングルでないとき
- 1770 IF HANGULFLAG THEN 'ハングルの処理中であったとき
- 1780 GOSUB *ハングルの最後
- 1790 HANGULFLAG=0
- 1800 PFLAG=0
- 1810 ENDIF
- 1820 IF A$="\" THEN
- 1830 GOSUB *ハングル表示
- 1840 COUNT=COUNT+1
- 1850 A$=MID$(LIN$,COUNT,1)
- 1860 IF A$="H" OR A$="h" THEN
- 1870 HANGULMODE=-1
- 1880 ELSE IF A$="A" OR A$="a" THEN
- 1890 HANGULMODE=0
- 1900 ELSE IF A$="C" OR A$="c" THEN
- 1910 NOCRFLAG=-1
- 1920 ELSE IF A$="%" THEN
- 1930 LIN$=""
- 1940 ELSE
- 1950 GOSUB *非ハングル表示
- 1960 ENDIF
- 1970 ELSE IF A$<>"-" THEN
- 1980 GOSUB *ハングル表示
- 1990 GOSUB *非ハングル表示
- 2000 ENDIF
- 2010 ENDIF
- 2020 GOTO *LOOP
- 2030 '
- 2040 ' ハングルの最後の処理
- 2050 '
- 2060 *ハングルの最後
- 2070 IF CFLAG THEN
- 2080 GOSUB *子音の変換
- 2090 ENDIF
- 2100 IF VFLAG THEN
- 2110 GOSUB *母音の確定
- 2120 ENDIF
- 2130 GOSUB *パッチムの確定
- 2140 RETURN
- 2150 '
- 2160 ' アルファベットかどうか調べる
- 2170 ' ALPHA アルファベットのとき -1
- 2180 ' アルファベットでないとき 0
- 2190 '
- 2200 *ISALPHA
- 2210 ALPHA=A$>="A" AND A$<="Z"
- 2220 IF ALPHA THEN RETURN
- 2230 ALPHA=A$>="a" AND A$<="z"
- 2240 RETURN
- 2250 '
- 2260 *子音の処理
- 2270 IF CCODE=0 THEN
- 2280 CCODE=CWORK
- 2290 ELSE IF CCODE=CWORK THEN
- 2300 CODE2=CCODE
- 2310 GOSUB *子音の濃音
- 2320 CCODE=CODE2
- 2330 ENDIF
- 2340 RETURN
- 2350 '
- 2360 ' 子音の濃音
- 2370 *子音の濃音
- 2380 GOSUB *パッチムの濃音
- 2390 IF CODE2>=&H11 THEN RETURN
- 2400 IF CODE2=3 THEN
- 2410 CODE2=&H12
- 2420 ELSE IF CODE2=6 THEN
- 2430 CODE2=&H13
- 2440 ELSE IF CODE2=9 THEN
- 2450 CODE2=&H15
- 2460 ENDIF
- 2470 RETURN
- 2480 '
- 2490 ' パッチムの濃音
- 2500 *パッチムの濃音
- 2510 IF CODE2=1 THEN
- 2520 CODE2=&H11
- 2530 ELSE IF CODE2=7 THEN
- 2540 CODE2=&H14
- 2550 ELSE IF CODE2=11 THEN
- 2560 CODE2=&H11
- 2570 ELSE IF CODE2=12 THEN
- 2580 CODE2=&H12
- 2590 ELSE IF CODE2=13 THEN
- 2600 CODE2=&H13
- 2610 ELSE IF CODE2=10 THEN
- 2620 CODE2=&H15
- 2630 ENDIF
- 2640 RETURN
- 2650 '
- 2660 ' 母音
- 2670 *母音
- 2680 IF VCOUNT<4 THEN
- 2690 VCODE(VCOUNT)=CODE(CODE1)
- 2700 VCOUNT=VCOUNT+1
- 2710 ENDIF
- 2720 RETURN
- 2730 '
- 2740 ' 母音の確定
- 2750 *母音の確定
- 2760 VFLAG=0
- 2770 IF VCOUNT=1 THEN ' 1字
- 2780 IF VCODE(0)=1 THEN 'A
- 2790 VOWEL=1
- 2800 ELSE IF VCODE(0)=2 THEN 'E
- 2810 VOWEL=&H13
- 2820 ELSE IF VCODE(0)=3 THEN 'I
- 2830 VOWEL=10
- 2840 ELSE IF VCODE(0)=4 THEN 'O
- 2850 VOWEL=5
- 2860 ELSE IF VCODE(0)=5 THEN 'U
- 2870 VOWEL=7
- 2880 ENDIF
- 2890 ELSE IF VCOUNT=2 THEN ' 2字
- 2900 IF VCODE(0)=1 THEN 'A
- 2910 IF VCODE(1)=2 OR VCODE(1)=3 THEN 'AE AI
- 2920 VOWEL=&H11
- 2930 ELSE
- 2940 VCOUNT=1:GOTO *母音の確定
- 2950 ENDIF
- 2960 ELSE IF VCODE(0)=2 THEN 'E
- 2970 IF VCODE(1)=4 THEN 'EO
- 2980 VOWEL=3
- 2990 ELSE IF VCODE(1)=5 THEN 'EU
- 3000 VOWEL=9
- 3010 ELSE
- 3020 VCOUNT=1:GOTO *母音の確定
- 3030 ENDIF
- 3040 ELSE IF VCODE(0)=4 THEN 'O
- 3050 IF VCODE(1)=1 THEN 'OA
- 3060 VOWEL=&H15
- 3070 ELSE IF VCODE(1)=3 THEN 'OI
- 3080 VOWEL=&H17
- 3090 ELSE
- 3100 VCOUNT=1:GOTO *母音の確定
- 3110 ENDIF
- 3120 ELSE IF VCODE(0)=5 THEN 'U
- 3130 IF VCODE(1)=2 THEN 'UE
- 3140 VOWEL=&H19
- 3150 ELSE IF VCODE(1)=3 THEN 'UI
- 3160 VOWEL=&H1A
- 3170 ELSE
- 3180 VCOUNT=1:GOTO *母音の確定
- 3190 ENDIF
- 3200 ELSE IF VCODE(0)=7 THEN 'Y
- 3210 IF VCODE(1)=1 THEN 'YA
- 3220 VOWEL=2
- 3230 ELSE IF VCODE(1)=2 THEN 'YE
- 3240 VOWEL=&H14
- 3250 ELSE IF VCODE(1)=4 THEN 'YO
- 3260 VOWEL=6
- 3270 ELSE IF VCODE(1)=5 THEN 'YU
- 3280 VOWEL=8
- 3290 ELSE
- 3300 VCOUNT=1
- 3310 VCODE(0)=VCODE(1)
- 3320 GOTO *母音の確定
- 3330 ENDIF
- 3340 ELSE IF VCODE(0)=6 THEN 'W
- 3350 IF VCODE(1)=1 THEN 'WA
- 3360 VOWEL=&H15
- 3370 ELSE IF VCODE(1)=2 THEN 'WE
- 3380 VOWEL=&H19
- 3390 ELSE IF VCODE(1)=3 THEN 'WI
- 3400 VOWEL=&H1A
- 3410 ELSE
- 3420 VCOUNT=1
- 3430 VCODE(0)=VCODE(1)
- 3440 GOTO *母音の確定
- 3450 ENDIF
- 3460 ENDIF
- 3470 ELSE IF VCOUNT=3 THEN ' 3字
- 3480 IF VCODE(0)=2 THEN 'E
- 3490 IF VCODE(1)=4 AND VCODE(2)=3 THEN 'EOI
- 3500 VOWEL=&H13
- 3510 ELSE IF VCODE(1)=5 AND VCODE(2)=3 THEN 'EUI
- 3520 VOWEL=&H1B
- 3530 ELSE
- 3540 VCOUNT=2:GOTO *母音の確定
- 3550 ENDIF
- 3560 ELSE IF VCODE(0)=4 THEN 'O
- 3570 IF VCODE(1)=1 AND (VCODE(2)=2 OR VCODE(2)=3) THEN 'OAE OAI
- 3580 VOWEL=&H16
- 3590 ELSE
- 3600 VCOUNT=2:GOTO *母音の確定
- 3610 ENDIF
- 3620 ELSE IF VCODE(0)=5 THEN 'U
- 3630 IF VCODE(1)=2 AND VCODE(2)=4 THEN 'UEO
- 3640 VOWEL=&H18
- 3650 ELSE
- 3660 VCOUNT=2:GOTO *母音の確定
- 3670 ENDIF
- 3680 ELSE IF VCODE(0)=7 THEN 'Y
- 3690 IF VCODE(1)=1 AND (VCODE(2)=2 OR VCODE(2)=3) THEN 'YAE YAI
- 3700 VOWEL=&H12
- 3710 ELSE IF VCODE(1)=2 AND VCODE(2)=4 THEN 'YEO
- 3720 VOWEL=4
- 3730 ELSE
- 3740 VCOUNT=2
- 3750 VCODE(0)=VCODE(1):VCODE(1)=VCODE(2)
- 3760 GOTO *母音の確定
- 3770 ENDIF
- 3780 ELSE IF VCODE(0)=6 THEN 'W
- 3790 IF VCODE(1)=1 AND (VCODE(2)=2 OR VCODE(2)=3) THEN 'WAE WAI
- 3800 VOWEL=&H16
- 3810 ELSE IF VCODE(1)=2 AND VCODE(2)=4 THEN 'WEO
- 3820 VOWEL=&H18
- 3830 ELSE
- 3840 VCOUNT=2
- 3850 VCODE(0)=VCODE(1):VCODE(1)=VCODE(2)
- 3860 GOTO *母音の確定
- 3870 ENDIF
- 3880 ENDIF
- 3890 ELSE IF VCOUNT=4 THEN ' 4字
- 3900 IF VCODE(0)=6 AND VCODE(1)=2 AND VCODE(2)=4 AND VCODE(3)=3 THEN 'YEOI
- 3910 VOWEL=&H14
- 3920 ELSE
- 3930 VCOUNT=3
- 3940 IF VCODE(0)=6 OR VCODE(0)=7 THEN 'Y W
- 3950 VCODE(0)=VCODE(1):VCODE(1)=VCODE(2):VCODE(2)=VCODE(3)
- 3960 ENDIF
- 3970 GOTO *母音の確定
- 3980 ENDIF
- 3990 ENDIF
- 4000 GOSUB *母音の変換
- 4010 RETURN
- 4020 '
- 4030 ' パッチムの処理
- 4040 *パッチムの処理
- 4050 IF PCOUNT<2 THEN
- 4060 PCODE(PCOUNT)=CODE(CODE1)
- 4070 PCOUNT=PCOUNT+1
- 4080 ELSE
- 4090 CWORK=CODE(CODE1)
- 4100 CCODE=0
- 4110 GOSUB *パッチムの確定
- 4120 CFLAG=-1
- 4130 GOSUB *子音の処理
- 4140 ENDIF
- 4150 RETURN
- 4160 '
- 4170 ' パッチムの確定
- 4180 *パッチムの確定
- 4190 IF PCOUNT=0 THEN
- 4200 BATCIM=0
- 4210 ELSE IF PCOUNT=1 THEN
- 4220 BATCIM=PCODE(0)
- 4230 ELSE
- 4240 IF PCODE(0)>=&H11 THEN
- 4250 GOSUB *パッチムの分割
- 4260 ELSE
- 4270 CODE2=PCODE(0)
- 4280 IF PCODE(0)=PCODE(1) THEN
- 4290 GOSUB *パッチムの濃音
- 4300 BATCIM=CODE2
- 4310 IF CODE2<&H11 THEN
- 4320 CCODE=CODE2
- 4330 ENDIF
- 4340 ELSE
- 4350 IF PCODE(0)=1 THEN 'G
- 4360 IF PCODE(1)=7 THEN 'GS
- 4370 BATCIM=&H21
- 4380 ELSE
- 4390 GOSUB *パッチムの分割
- 4400 ENDIF
- 4410 ELSE IF PCODE(0)=2 THEN 'N
- 4420 IF PCODE(1)=1 THEN 'NG
- 4430 BATCIM=8
- 4440 ELSE IF PCODE(1)=9 THEN 'NJ NZ
- 4450 BATCIM=&H22
- 4460 ELSE IF PCODE(1)=14 THEN 'NH
- 4470 BATCIM=&H23
- 4480 ELSE
- 4490 GOSUB *パッチムの分割
- 4500 ENDIF
- 4510 ELSE IF PCODE(0)=4 THEN 'R L
- 4520 IF PCODE(1)=1 THEN 'RG LG
- 4530 BATCIM=&H24
- 4540 ELSE IF PCODE(1)=5 THEN 'RM LM
- 4550 BATCIM=&H25
- 4560 ELSE IF PCODE(1)=6 THEN 'RB LB RV LV
- 4570 BATCIM=&H26
- 4580 ELSE IF PCODE(1)=7 THEN 'RS LS
- 4590 BATCIM=&H27
- 4600 ELSE IF PCODE(1)=12 THEN 'RT LT
- 4610 BATCIM=&H28
- 4620 ELSE IF PCODE(1)=13 THEN 'RF LF RP LP
- 4630 BATCIM=&H29
- 4640 ELSE IF PCODE(1)=14 THEN 'RH LH
- 4650 BATCIM=&H2A
- 4660 ELSE
- 4670 GOSUB *パッチムの分割
- 4680 ENDIF
- 4690 ELSE IF PCODE(0)=6 AND PCODE(1)=7 THEN 'BS VS
- 4700 BATCIM=&H2B
- 4710 ELSE
- 4720 GOSUB *パッチムの分割
- 4730 ENDIF
- 4740 ENDIF
- 4750 ENDIF
- 4760 ENDIF
- 4770 PFLAG=0:PCOUNT=0
- 4780 GOSUB *パッチムの変換
- 4790 RETURN
- 4800 '
- 4810 *パッチムの分割
- 4820 BATCIM=PCODE(0)
- 4830 CCODE=PCODE(1)
- 4840 CFLAG=-1
- 4850 RETURN
- 4860 '
- 4870 ' 子音の変換
- 4880 *子音の変換
- 4890 IF CCODE<15 THEN
- 4900 CODE2=CCODE
- 4910 ELSE
- 4920 CODE2=CCODE-2
- 4930 ENDIF
- 4940 HANGULCODE(0)=CODE2
- 4950 CCODE=0
- 4960 RETURN
- 4970 '
- 4980 ' 母音の変換
- 4990 *母音の変換
- 5000 IF VOWEL<11 THEN
- 5010 CODE2=VOWEL
- 5020 ELSE
- 5030 CODE2=VOWEL-6
- 5040 ENDIF
- 5050 HANGULCODE(1)=CODE2
- 5060 VOWEL=0
- 5070 RETURN
- 5080 '
- 5090 ' パッチムの変換
- 5100 *パッチムの変換
- 5110 IF BATCIM<15 THEN
- 5120 CODE2=BATCIM
- 5130 ELSE IF BATCIM=&H11 THEN
- 5140 CODE2=&H0F
- 5150 ELSE IF BATCIM=&H12 THEN
- 5160 CODE2=3
- 5170 ELSE IF BATCIM=&H13 THEN
- 5180 CODE2=6
- 5190 ELSE IF BATCIM=&H14 THEN
- 5200 CODE2=&H10
- 5210 ELSE IF BATCIM=&H15 THEN
- 5220 CODE2=9
- 5230 ELSE IF BATCIM<&H20 THEN
- 5240 CODE2=0
- 5250 ELSE
- 5260 CODE2=BATCIM-16
- 5270 ENDIF
- 5280 HANGULCODE(2)=CODE2
- 5290 BATCIM=0
- 5300 GOSUB *ハングル表示
- 5310 RETURN
- 5320 '
- 5330 ' ハングル表示
- 5340 *ハングル表示
- 5350 IF HANGULCODE(0)=0 THEN
- 5360 WORK=HANGULCODE(1)-1
- 5370 ELSE IF HANGULCODE(1)=0 THEN
- 5380 WORK=HANGULCODE(0)*589-568
- 5390 ELSE
- 5400 WORK=HANGULCODE(0)*589+HANGULCODE(1)*28+HANGULCODE(2)-595
- 5410 ENDIF
- 5420 HANGULCODE(0)=0
- 5430 HANGULCODE(1)=0
- 5440 HANGULCODE(2)=0
- 5450 IF WORK<0 THEN RETURN
- 5460 REC=WORK+1
- 5470 GET #2,REC
- 5480 FOR I=0 TO 15
- 5490 FIELD #2,2*I AS DMY$,2 AS F$
- 5500 FONT(I)=CVI(F$)
- 5510 NEXT I
- 5520 SY=Y*19.2!
- 5530 PUT@(X*8,SY)-(X*8+15,SY+15),FONT
- 5540 X=X+2
- 5550 IF X>79 THEN
- 5560 GOSUB *改行
- 5570 ENDIF
- 5580 RETURN
- 5590 '
- 5600 *改行
- 5610 X=0
- 5620 Y=Y+1
- 5630 IF Y>=23 THEN
- 5640 LOCATE 0,25:PRINT "何かキーを押してください。";:A1$=INPUT$(1)
- 5650 CLS:Y=0
- 5660 ENDIF
- 5670 RETURN
- 5680 '
- 5690 ' 非ハングル表示
- 5700 *非ハングル表示
- 5710 IF A$>=CHR$(&H80) THEN
- 5720 IF A$<CHR$(&HA0) OR A$>=CHR$(&HE0) THEN
- 5730 COUNT=COUNT+1
- 5740 A$=A$+MID$(LIN$,COUNT,1)
- 5750 ENDIF
- 5760 ENDIF
- 5770 IF X+LEN(A$)>80 THEN
- 5780 GOSUB *改行
- 5790 ENDIF
- 5800 SY=Y*19.2!
- 5810 SYMBOL(X*8,SY),A$,1,1
- 5820 X=X+LEN(A$)
- 5830 RETURN
- 5840 '
- 5850 ' 終了処理
- 5860 *END
- 5870 Y=24
- 5880 GOSUB *改行
- 5890 END
- 5900 *SETFONT
- 5910 CLOSE #2
- 5920 KILL FONTFILE$
- 5930 LINE INPUT "フォントファイル名は";FONTFILE$
- 5940 GOTO *出力ファイル
- 5950 '
- 5960 *ATTRIBUTE
- 5970 ' A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
- 5980 DATA 0,1, 1,1,0, 1,1, 1,0,1, 1,1,1,1,0, 1,2,1,1, 1,0,1,0,1,0,1
- 5990 DATA 1,6,10,3,2,13,1,14,3,9,11,4,5,2,4,13,0,4,7,12,5,6,6,8,7,9
-